package com.kmxd.ams.infra.archive.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

/**
 * 特殊利用授权
 *
 * @author nickbi
 * @since 2022-07-27
 */
@Data
@TableName("s_archive_auth_rule")
public class ArchiveAuthRule implements Serializable {

  private static final long serialVersionUID = 1L;

  /** 主键ID */
  private Long id;

  /** 全宗ID */
  private Long fondsId;

  /** 档案类型id */
  private Long archTypeId;

  /** 主表s_archive_auth表id */
  private Long authId;

  /** 表名 */
  private String tableId;

  /** 档案范围过滤条件的表达式 */
  private String ruleExpress;

  /** 档案范围过滤条件中文描述，用于回显前端 */
  private String ruleDesc;

  /** 上级单位领导:0不允许, 1允许 */
  private Boolean parentOrgUseRole;

  /** 本单位领导:0不允许, 1允许 */
  private Boolean companyLevelUseRole;

  /** 归档部门全体:0不允许, 1允许 */
  private Boolean filingDepartment;

  /** 归档部门领导:0不允许, 1允许 */
  private Boolean filingDeptUseRole;

  /** 经办部门全体:0不允许, 1允许 */
  private Boolean handlingDepartment;

  /** 经办部门领导:0不允许, 1允许 */
  private Boolean handlingDeptUseRole;

  /** 经办人:0不允许, 1允许 */
  private Boolean handlingUser;

  /** 归属单位:0不允许, 1允许 */
  private Boolean attributeOrg;

  /** 其他特定人员,单位id串 */
  private String orgIds;

  /** 其他特定人员,部门id串 */
  private String deptIds;

  /** 其他特定人员,人员id串 */
  private String userIds;

  /** 其他特定人员,角色id串 */
  private String roleIds;

  /** 其他特定人员,用户组id串 */
  private String userGroupIds;

  /** 适用人员范围: 1常用, 2其他 */
  private Integer userScope;

  /** 在线浏览:0不允许, 1允许 */
  private Boolean onlineBrowser;

  /** 原文浏览:0不允许, 1允许 */
  private Boolean browserFile;

  /** 在线打印:0不允许, 1允许 */
  private Boolean onlinePrint;

  /** 摘录:0不允许, 1允许 */
  private Boolean excerpt;

  /** 文件下载:0不允许, 1允许 */
  private Boolean download;

  /** 原文下载(原格式):0不允许, 1允许 */
  private Boolean downloadSource;

  /** 现场阅览:0不允许, 1允许 */
  private Boolean liveRead;

  /** 外借:0不允许, 1允许 */
  private Boolean lendOut;

  /** 复制外发:0不允许, 1允许 */
  private Boolean copySend;

  /** 状态`: 0未启用, 1启用 */
  private Boolean status;

  /** 创建人 */
  @TableField(fill = FieldFill.INSERT)
  private Long createBy;

  /** 创建时间 */
  @TableField(fill = FieldFill.INSERT)
  private Date createTime;

  /** 更新人 */
  @TableField(fill = FieldFill.INSERT_UPDATE)
  private Long updateBy;

  /** 更新时间 */
  @TableField(fill = FieldFill.INSERT_UPDATE)
  private Date updateTime;

  /** 删除状态(0-正常,1-已删除) */
  private Long delFlag;
}
